package com.doudou.collection.dao.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doudou.collection.orm.dto.user.update.UserUpdateEmailDTO;
import com.doudou.collection.orm.dto.user.update.UserUpdateNameDTO;
import com.doudou.collection.orm.dto.user.update.UserUpdatePhoneDTO;
import com.doudou.collection.orm.dto.user.update.UserUpdatePwdDTO;
import com.doudou.collection.orm.entity.User;
import com.doudou.collection.orm.vo.UserLoginVO;
import org.springframework.stereotype.Repository;

import java.time.LocalDateTime;

/**
 * @ClassName UserMapper
 * @Description 用户持久层模块
 * @Author blue sky
 * @Date 2023/5/30 23:14
 * @Version 1.0
 */
@Repository
public interface UserMapper extends BaseMapper<User> {

    /**
     * 通过用户名查询用户信息
     */
    UserLoginVO queryByUsername(String username);

    /**
     * 通过邮箱查询用户信息
     */
    UserLoginVO queryByEmail(String email);

    /**
     * 通过手机号查询用户信息
     */
    UserLoginVO queryByPhone(String phone);

    /**
     * 通过id修改用户名
     */
    int updateUsernameById(UserUpdateNameDTO userUpdateNameDTO);

    /**
     * 通过id查找密码
     */
    String queryPasswordById(Long id);

    /**
     * 通过id修改密码
     */
    int updatePasswordById(UserUpdatePwdDTO userUpdatePwdDTO);

    /**
     * 通过id修改邮箱
     */
    int updateEmailById(UserUpdateEmailDTO userUpdateEmailDTO);

    /**
     * 通过id修改手机号
     */
    int updatePhoneById(UserUpdatePhoneDTO userUpdatePhoneDTO);

    /**
     * 更新修改时间
     */
    int updateTimeById(Long id, LocalDateTime now);
}
